/*
 * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package top.continew.admin.cakerun.model.resp;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.math.BigDecimal;

/**
 * 店铺绩效汇总表响应
 *
 * @author tangyu
 * @since 2025/01/27 10:00
 */
@Data
@ExcelIgnoreUnannotated
@Schema(description = "店铺绩效汇总表")
public class StorePerformanceSummaryResp {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 序号
     */
    @Schema(description = "序号")
    @ExcelProperty(value = "序号")
    private Integer serialNumber;

    /**
     * 门店名称
     */
    @Schema(description = "门店名称")
    @ExcelProperty(value = "门店名称")
    private String shopName;

    /**
     * 上周订单核销数
     */
    @Schema(description = "上周订单核销数")
    @ExcelProperty(value = "6.23-6.29订单核销数")
    private Integer lastWeekOrderCount;

    /**
     * 上周实际收益
     */
    @Schema(description = "上周实际收益")
    @ExcelProperty(value = "6.23-6.29实际收益")
    private BigDecimal lastWeekRevenue;

    /**
     * 本周订单核销数
     */
    @Schema(description = "本周订单核销数")
    @ExcelProperty(value = "6.30-7.06订单核销数")
    private Integer thisWeekOrderCount;

    /**
     * 本周实际收益
     */
    @Schema(description = "本周实际收益")
    @ExcelProperty(value = "6.30-7.06实际收益")
    private BigDecimal thisWeekRevenue;

    /**
     * 6.30评分
     */
    @Schema(description = "6.30评分")
    @ExcelProperty(value = "6.30评分")
    private BigDecimal lastScore;

    /**
     * 7.07评分
     */
    @Schema(description = "7.07评分")
    @ExcelProperty(value = "7.07评分")
    private BigDecimal thisScore;

    /**
     * ROS分
     */
    @Schema(description = "ROS分")
    @ExcelProperty(value = "ROS分")
    private Integer rosScore;

    /**
     * 好评数量
     */
    @Schema(description = "好评数量")
    @ExcelProperty(value = "好评数量")
    private Integer goodReviewCount;

    /**
     * 中差评数量
     */
    @Schema(description = "中差评数量")
    @ExcelProperty(value = "中差评数量")
    private Integer badReviewCount;

    /**
     * 好评率
     */
    @Schema(description = "好评率")
    @ExcelProperty(value = "好评率")
    private BigDecimal goodReviewRate;

    /**
     * 差评率
     */
    @Schema(description = "差评率")
    @ExcelProperty(value = "差评率")
    private BigDecimal badReviewRate;

    /**
     * 曝光人数
     */
    @Schema(description = "曝光人数")
    @ExcelProperty(value = "曝光人数")
    private Integer exposureCount;

    /**
     * 访问人数
     */
    @Schema(description = "访问人数")
    @ExcelProperty(value = "访问人数")
    private Integer visitCount;

    /**
     * 购买人数
     */
    @Schema(description = "购买人数")
    @ExcelProperty(value = "购买人数")
    private Integer purchaseCount;

    /**
     * 曝光-访问转化率
     */
    @Schema(description = "曝光-访问转化率")
    @ExcelProperty(value = "曝光-访问转化率")
    private BigDecimal exposureToVisitRate;

    /**
     * 访问-购买转化率
     */
    @Schema(description = "访问-购买转化率")
    @ExcelProperty(value = "访问-购买转化率")
    private BigDecimal visitToPurchaseRate;

    /**
     * 是否为合计行
     */
    @Schema(description = "是否为合计行")
    private Boolean isTotal;
}